A recognized problem in the field of software development is error in translation from specified requirements to a working program. According to one software development model, a written specification which describes planned behavior for the program is created prior to beginning development of any software code. The specification is meant to be used by software engineers as a guide when writing the code so that the program functions as planned. However, because the specification may be inaccurate, incomplete and describe a poor design, and because the software engineers may fail to precisely follow the specification during development, the resulting program may differ from the planned program. If the differences are significant enough, the program may have to be rewritten or otherwise altered. As a result, development time and development costs are increased.